#ifndef KERNEL_H
#define KERNEL_H

#include <QtCore/QObject>
#include <QtCore/QSettings>
#include <QtCore/QFile>
#include "global.h"
namespace smstranslator {

class KernelPrivate;

class Kernel : public QObject {
  Q_OBJECT
public:
  Kernel(log::LogManager *log_manager);

  ~Kernel();

  bool readConfig(QSettings *config);

  void reloadConfig(QSettings *config);

  void start();

  void stop();

  QString getLastError() const;

signals:

  void stateChanged(State state);

private:

  friend class KernelPrivate;

  KernelPrivate *p;
};

} // namespace smstranslator

#endif // KERNEL_H
